using System.Collections.Generic;
using Lync.Widget.Library.Configuration;

namespace Lync.Widget.Library.Presence
{
    /// <summary>
    /// An interface for a cache of presence information by contact sip uri or for groups
    /// </summary>
    public interface IPresenceCache
    {
        List<PresenceSubscription> GetPresence(List<string> sipUris);
        PresenceSubscription GetPresence(string sipUri, int priority = -1);
        PresenceSubscription GetCachedPresence(string sipUri);
        PresenceSubscription GetInitialPresence(string sipUri);
        GroupSubscription Projection(IActiveDirectoryGroup group);
        IList<GroupSubscription> GetGroupPresence(IList<IActiveDirectoryGroup> groups);
        void Reset(string sipUri);
        void ResetAll();
    }
}